/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package service;

import daos.encuestaDAO;
import entity.encuesta_care;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.persistence.EntityManager;
import vo.encuestaVO;

/**
 *
 * @author miguel.duran
 */
public class encuestaService {

    public void create(encuestaVO vo, EntityManager em){
        encuesta_care entity = new encuesta_care();
        entity.setNombre(vo.getNombre());
        entity.setEmail(vo.getEmail());
        entity.setMedio(vo.getMedio());
        entity.setAgilidad(vo.getAgilidad());
        entity.setInformacion(vo.getInformacion());
        entity.setClaridad(vo.getClaridad());
        entity.setSatisfaccion(vo.getSatisfaccion());
        entity.setObservaciones(vo.getObservaciones());
        entity.setRadicado(vo.getRadicado());
        entity.setFecha(vo.getFecha());
        entity.setId(encuestaDAO.getMaxId(em)+1);
        encuestaDAO.persist(entity, em);
    }
    
    public void update(encuestaVO vo, EntityManager em){
        encuesta_care entity = encuestaDAO.findbyId(vo.getId(), em);
        entity.setNombre(vo.getNombre());
        entity.setEmail(vo.getEmail());
        entity.setMedio(vo.getMedio());
        entity.setAgilidad(vo.getAgilidad());
        entity.setInformacion(vo.getInformacion());
        entity.setClaridad(vo.getClaridad());
        entity.setSatisfaccion(vo.getSatisfaccion());
        entity.setObservaciones(vo.getObservaciones());
        entity.setRadicado(vo.getRadicado());
        entity.setFecha(vo.getFecha());
        encuestaDAO.merge(entity, em);
    }

    public void delete(Long id, EntityManager em){
        encuesta_care entity = encuestaDAO.findbyId(id, em);
        encuestaDAO.delete(entity, em);
    }

    public encuestaVO getVOFromEntity(encuesta_care entity){
        encuestaVO vo = new encuestaVO();
        vo.setId(entity.getId());
        vo.setNombre(entity.getNombre());
        vo.setEmail(entity.getEmail());
        vo.setMedio(entity.getMedio());
        vo.setAgilidad(entity.getAgilidad());
        vo.setInformacion(entity.getInformacion());
        vo.setClaridad(entity.getClaridad());
        vo.setSatisfaccion(entity.getSatisfaccion());
        vo.setObservaciones(entity.getObservaciones());
        vo.setRadicado(entity.getRadicado());
        vo.setFecha(entity.getFecha());
        return vo;
    }

    public encuestaVO getById(Long id, EntityManager em){
        encuesta_care entity = encuestaDAO.findbyId(id, em);
        return getVOFromEntity(entity);
    }

    public List<encuestaVO> getList(EntityManager em){
        List<encuesta_care> encuestas = encuestaDAO.getList(em);
        List<encuestaVO> encuestasVO = new ArrayList<encuestaVO>();        
        encuestaVO vo = new encuestaVO();
        int size = encuestas.size();
        for (int i = 0; i < size; i++) {
            vo = getVOFromEntity(encuestas.get(i));
            encuestasVO.add(vo);
        }
        return encuestasVO;
    }
    
    public List<encuestaVO> getListRango(Date fecha_1, Date fecha_2, EntityManager em){
        List<encuesta_care> encuestas = encuestaDAO.getListRango(fecha_1,fecha_2,em);
        List<encuestaVO> encuestasVO = new ArrayList<encuestaVO>();        
        encuestaVO vo = new encuestaVO();
        int size = encuestas.size();
        for (int i = 0; i < size; i++) {
            vo = getVOFromEntity(encuestas.get(i));
            encuestasVO.add(vo);
        }
        return encuestasVO;
    }
    
}
